package day03;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

/**
 * 实现时间的计算: 要求用户输入身份证号，若格式有误，要求其重新输入。然后根据身份证号码输出20岁生日
 * 所在周的周三的日期。
 * 例如:
 * 出生日期:1992-07-15。
 * 20岁生日:2012-07-15
 * 当周的周三为:2012-07-18
 * @author Bonnie
 *
 */
public class Test05 {
    public static void main(String[] args) throws ParseException {
        Scanner scanner = new Scanner(System.in);
        String idCard = scanner.nextLine();
        String regex = "\\d{17}[0-9X]";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        if(idCard.matches(regex)){
            Date date = sdf.parse(idCard.substring(6,14));
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            cal.add(Calendar.YEAR,20);
            System.out.println(sdf1.format(cal.getTime()));
            cal.setTime(date);
            cal.set(Calendar.DAY_OF_WEEK_IN_MONTH,Calendar.WEDNESDAY);
            System.out.println(sdf1.format(cal.getTime()));
        }else{
            System.out.println("输入身份证号错误");
        }
    }
}
